home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Ham⁄GPS / IP Folder / HAMradio TCP⁄IP / Docs / RFC 1194 < prev    next >
Text File  |  1991-04-03  |  24KB  |  670 lines

  1. Network Working Group                                       D. Zimmerman
  2. Request for Comments: 1194           Center for Discrete Mathematics and
  3. Obsoletes: RFC 742                          Theoretical Computer Science
  4.                                                            November 1990
  5.  
  6.  
  7.                   The Finger User Information Protocol
  8.  
  9. Status of this Memo
  10.  
  11.    This memo defines a protocol for the exchange of user information.
  12.    This RFC specifies an IAB standards track protocol for the Internet
  13.    community, and requests discussion and suggestions for improvements.
  14.    Please refer to the current edition of the "IAB Official Protocol
  15.    Standards" for the standardization state and status of this protocol.
  16.    Distribution of this memo is unlimited.
  17.  
  18. Abstract
  19.  
  20.    This memo describes the Finger User Information Protocol.  This is a
  21.    simple protocol which provides an interface to a remote user
  22.    information program.
  23.  
  24.    Based on RFC 742, a description of the original Finger protocol, this
  25.    memo attempts to clarify the expected communication between the two
  26.    ends of a Finger connection.  It also tries not to invalidate the
  27.    many existing implementations or add unnecessary restrictions to the
  28.    original protocol definition.
  29.  
  30. Table of Contents
  31.  
  32. 1.      Introduction  ...........................................   2
  33.   1.1.    Intent  ...............................................   2
  34.   1.2.    History  ..............................................   3
  35.   1.3.    Requirements  .........................................   3
  36. 2.      Use of the protocol  ....................................   3
  37.   2.1.    Flow of events  .......................................   3
  38.   2.2.    Data format  ..........................................   4
  39.   2.3.    Query specifications  .................................   4
  40.   2.4.    RUIP {Q2} behavior  ...................................   4
  41.   2.5.    Expected RUIP response  ...............................   5
  42.     2.5.1.  {C} query  ..........................................   5
  43.     2.5.2.  {U}{C} query  .......................................   6
  44.     2.5.3.  {U} ambiguity  ......................................   6
  45.     2.5.4.  /W query token  .....................................   6
  46.     2.5.5.  Vending machines  ...................................   7
  47. 3.      Security  ...............................................   7
  48.   3.1.    Implementation security  ..............................   7
  49.  
  50.  
  51.  
  52. Zimmerman                                                       [Page 1]
  53.  
  54. RFC 1194                         Finger                    November 1990
  55.  
  56.  
  57.   3.2.    RUIP security  ........................................   7
  58.     3.2.1.  {Q2} refusal  .......................................   7
  59.     3.2.2.  {C} refusal  ........................................   8
  60.     3.2.3.  Atomic discharge  ...................................   8
  61.     3.2.4.  User information files  .............................   8
  62.     3.2.5.  Execution of user programs  .........................   9
  63.     3.2.6.  {U} ambiguity  ......................................   9
  64.     3.2.7.  Audit trails  .......................................   9
  65.   3.3.    Client security  ......................................   9
  66. 4.      Examples  ...............................................  10
  67.   4.1.    Example with a null command line ({C})  ...............  10
  68.   4.2.    Example with name specified ({U}{C})  .................  10
  69.   4.3.    Example with ambiguous name specified ({U}{C})  .......  11
  70.   4.4.    Example of query type {Q2} ({U}{H}{H}{C})  ............  11
  71. 5.      Acknowledgments  ........................................  12
  72. 6.      Security Considerations .................................  12
  73. 7.      Author's Address  .......................................  12
  74.  
  75. 1.  Introduction
  76.  
  77. 1.1.  Intent
  78.  
  79.    This memo describes the Finger User Information Protocol.  This is a
  80.    simple protocol which provides an interface to a remote user
  81.    information program (RUIP).
  82.  
  83.    Based on RFC 742, a description of the original Finger protocol, this
  84.    memo attempts to clarify the expected communication between the two
  85.    ends of a Finger connection.  It also tries not to invalidate the
  86.    many current implementations or add unnecessary restrictions to the
  87.    original protocol definition.
  88.  
  89.    The most prevalent implementations of Finger today seem to be
  90.    primarily derived from the BSD UNIX work at the University of
  91.    California, Berkeley.  Thus, this memo is based around the BSD
  92.    version's behavior.
  93.  
  94.    However, the BSD version provides few options to tailor the Finger
  95.    RUIP for a particular site's security policy, or to protect the user
  96.    from dangerous data.  Furthermore, there are MANY potential security
  97.    holes that implementors and administrators need to be aware of,
  98.    particularly since the purpose of this protocol is to return
  99.    information about a system's users, a sensitive issue at best.
  100.    Therefore, this memo makes a number of important security comments
  101.    and recommendations.
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. Zimmerman                                                       [Page 2]
  109.  
  110. RFC 1194                         Finger                    November 1990
  111.  
  112.  
  113. 1.2.  History
  114.  
  115.    The FINGER program at SAIL, written by Les Earnest, was the
  116.    inspiration for the NAME program on ITS.  Earl Killian at MIT and
  117.    Brian Harvey at SAIL were jointly responsible for implementing the
  118.    original protocol.
  119.  
  120.    Ken Harrenstien is the author of RFC 742, "Name/Finger", which this
  121.    memo began life as.
  122.  
  123. 1.3.  Requirements
  124.  
  125.    In this document, the words that are used to define the significance
  126.    of each particular requirement are capitalized.  These words are:
  127.  
  128.    * "MUST"
  129.  
  130.       This word or the adjective "REQUIRED" means that the item is an
  131.       absolute requirement of the specification.
  132.  
  133.    * "SHOULD"
  134.  
  135.       This word or the adjective "RECOMMENDED" means that there may
  136.       exist valid reasons in particular circumstances to ignore this
  137.       item, but the full implications should be understood and the case
  138.       carefully weighed before choosing a different course.
  139.  
  140.    * "MAY"
  141.  
  142.       This word or the adjective "OPTIONAL" means that this item is
  143.       truly optional.  One vendor may choose to include the item because
  144.       a particular marketplace requires it or because it enhances the
  145.       product, for example; another vendor may omit the same item.
  146.  
  147.    An implementation is not compliant if it fails to satisfy one or more
  148.    of the MUST requirements.  An implementation that satisfies all the
  149.    MUST and all the SHOULD requirements is said to be "unconditionally
  150.    compliant"; one that satisfies all the MUST requirements but not all
  151.    the SHOULD requirements is said to be "conditionally compliant".
  152.  
  153. 2.  Use of the protocol
  154.  
  155. 2.1.  Flow of events
  156.  
  157.    Finger is based on the Transmission Control Protocol, using TCP port
  158.    79 decimal (117 octal).  A TCP connection is opened to a remote host
  159.    on the Finger port.  An RUIP becomes available on the remote end of
  160.    the connection to process the request.  The RUIP is sent a one line
  161.  
  162.  
  163.  
  164. Zimmerman                                                       [Page 3]
  165.  
  166. RFC 1194                         Finger                    November 1990
  167.  
  168.  
  169.    query based upon the Finger query specification.  The RUIP processes
  170.    the query, returns an answer, then closes the connection normally.
  171.  
  172. 2.2.  Data format
  173.  
  174.    Any data transferred MUST be in ASCII format, with no parity, and
  175.    with lines ending in CRLF.  This excludes other character formats
  176.    such as EBCDIC, etc.  This also means that any characters between
  177.    ASCII 128 and ASCII 255 should truly be international data, not
  178.    USASCII with the parity bit set.
  179.  
  180. 2.3.  Query specifications
  181.  
  182.    An RUIP MUST accept the entire Finger query specification.
  183.  
  184.    The Finger query specification is defined:
  185.  
  186.         {Q1}    ::= [{U}] [/W] {C}
  187.  
  188.         {Q2}    ::= [{U}]{H} [/W] {C}
  189.  
  190.         {U}     ::= username
  191.  
  192.         {H}     ::= @hostname | @hostname{H}
  193.  
  194.         {C}     ::= <CRLF>
  195.  
  196.    {H}, being recursive, means that there is no arbitrary limit on the
  197.    number of @hostname tokens in the query.  In examples of the {Q2}
  198.    request specification, the number of @hostname tokens is limited to
  199.    two, simply for brevity.
  200.  
  201.    Be aware that {Q1} and {Q2} do not refer to a user typing "finger
  202.    user@host" from an operating system prompt.  It refers to the line
  203.    that an RUIP actually receives.  So, if a user types "finger
  204.    user@host<CRLF>", the RUIP on the remote host receives "user<CRLF>",
  205.    which corresponds to {Q1}.
  206.  
  207.    As with anything in the IP protocol suite, "be liberal in what you
  208.    accept".
  209.  
  210. 2.4.  RUIP {Q2} behavior
  211.  
  212.    A query of {Q2} is a request to forward a query to another RUIP.  An
  213.    RUIP MUST either provide or actively refuse this forwarding service
  214.    (see section 3.2.1).  If an RUIP provides this service, it MUST
  215.    conform to the following behavior:
  216.  
  217.  
  218.  
  219.  
  220. Zimmerman                                                       [Page 4]
  221.  
  222. RFC 1194                         Finger                    November 1990
  223.  
  224.  
  225.    Given that:
  226.  
  227.          Host <H1> opens a Finger connection <F1-2> to an RUIP on host
  228.          <H2>.
  229.  
  230.          <H1> gives the <H2> RUIP a query <Q1-2> of type {Q2}
  231.          (e.g., FOO@HOST1@HOST2).
  232.  
  233.    It should be derived that:
  234.  
  235.          Host <H3> is the right-most host in <Q1-2> (i.e., HOST2)
  236.  
  237.          Query <Q2-3> is the remainder of <Q1-2> after removing the
  238.          right-most "@hostname" token in the query (i.e., FOO@HOST1)
  239.  
  240.    And so:
  241.  
  242.          The <H2> RUIP then must itself open a Finger connection <F2-3>
  243.          to <H3>, using <Q2-3>.
  244.  
  245.          The <H2> RUIP must return any information received from <F2-3>
  246.          to <H1> via <F1-2>.
  247.  
  248.          The <H2> RUIP must close <F1-2> in normal circumstances only
  249.          when the <H3> RUIP closes <F2-3>.
  250.  
  251. 2.5.  Expected RUIP response
  252.  
  253.    For the most part, the output of an RUIP doesn't follow a strict
  254.    specification, since it is designed to be read by people instead of
  255.    programs.  It should mainly strive to be informative.
  256.  
  257.    Output of ANY query is subject to the discussion in the security
  258.    section.
  259.  
  260. 2.5.1.  {C} query
  261.  
  262.    A query of {C} is a request for a list of all online users.  An RUIP
  263.    MUST either answer or actively refuse (see section 3.2.2).  If it
  264.    answers, then it MUST provide at least the user's full name.  The
  265.    system administrator SHOULD be allowed to include other useful
  266.    information (per section 3.2.3), such as:
  267.  
  268.       -    terminal location
  269.       -    office location
  270.       -    office phone number
  271.       -    job name
  272.       -    idle time (number of minutes since last typed input, or
  273.  
  274.  
  275.  
  276. Zimmerman                                                       [Page 5]
  277.  
  278. RFC 1194                         Finger                    November 1990
  279.  
  280.  
  281.            since last job activity).
  282.  
  283. 2.5.2.  {U}{C} query
  284.  
  285.    A query of {U}{C} is a request for in-depth status of a specified
  286.    user {U}.  If you really want to refuse this service, you probably
  287.    don't want to be running Finger in the first place.
  288.  
  289.    An answer MUST include at least the full name of the user.  If the
  290.    user is logged in, at least the same amount of information returned
  291.    by {C} for that user MUST also be returned by {U}{C}.
  292.  
  293.    Since this is a query for information on a specific user, the system
  294.    administrator SHOULD be allowed to choose to return additional useful
  295.    information (per section 3.2.3), such as:
  296.  
  297.       -    office location
  298.       -    office phone number
  299.       -    home phone number
  300.       -    status of login (not logged in, logout time, etc)
  301.       -    user information file
  302.  
  303.    A user information file is a feature wherein a user may leave a short
  304.    message that will be included in the response to Finger requests.
  305.    (This is sometimes called a "plan" file.)  This is easily implemented
  306.    by (for example) having the program look for a specially named text
  307.    file in the user's home directory or some common area; the exact
  308.    method is left to the implementor.  The system administrator SHOULD
  309.    be allowed to specifically turn this feature on and off.  See section
  310.    3.2.4 for caveats.
  311.  
  312.    There MAY be a way for the user to run a program in response to a
  313.    Finger query.  If this feature exists, the system administrator
  314.    SHOULD be allowed to specifically turn it on and off.  See section
  315.    3.2.5 for caveats.
  316.  
  317. 2.5.3.  {U} ambiguity
  318.  
  319.    Allowable "names" in the command line MUST include "user names" or
  320.    "login names" as defined by the system.  If a name is ambiguous, the
  321.    system administrator SHOULD be allowed to choose whether or not all
  322.    possible derivations should be returned in some fashion (per section
  323.    3.2.6).
  324.  
  325. 2.5.4.  /W query token
  326.  
  327.    The token /W in the {Q1} or {Q2} query types SHOULD at best be
  328.    interpreted at the last RUIP to signify a higher level of verbosity
  329.  
  330.  
  331.  
  332. Zimmerman                                                       [Page 6]
  333.  
  334. RFC 1194                         Finger                    November 1990
  335.  
  336.  
  337.    in the user information output, or at worst be ignored.
  338.  
  339. 2.5.5.  Vending machines
  340.  
  341.    Vending machines SHOULD respond to a {C} request with a list of all
  342.    items currently available for purchase and possible consumption.
  343.    Vending machines SHOULD respond to a {U}{C} request with a detailed
  344.    count or list of the particular product or product slot.  Vending
  345.    machines should NEVER NEVER EVER eat requests.  Or money.
  346.  
  347. 3.  Security
  348.  
  349. 3.1.  Implementation security
  350.  
  351.    Sound implementation of Finger is of the utmost importance.
  352.    Implementations should be tested against various forms of attack.  In
  353.    particular, an RUIP SHOULD protect itself against malformed inputs.
  354.    Vendors providing Finger with the operating system or network
  355.    software should subject their implementations to penetration testing.
  356.  
  357.    Finger is one of the avenues for direct penetration, as the Morris
  358.    worm pointed out quite vividly.  Like Telnet, FTP and SMTP, Finger is
  359.    one of the protocols at the security perimeter of a host.
  360.    Accordingly, the soundness of the implementation is paramount.  The
  361.    implementation should receive just as much security scrutiny during
  362.    design, implementation, and testing as Telnet, FTP, or SMTP.
  363.  
  364. 3.2.  RUIP security
  365.  
  366.    Warning!!  Finger discloses information about users; moreover, such
  367.    information may be considered sensitive.  Security administrators
  368.    should make explicit decisions about whether to run Finger and what
  369.    information should be provided in responses.  One existing
  370.    implementation provides the time the user last logged in, the time he
  371.    last read mail, whether unread mail was waiting for him, and who the
  372.    most recent unread mail was from!  This makes it possible to track
  373.    conversations in progress and see where someone's attention was
  374.    focused.  Sites that are information-security conscious should not
  375.    run Finger without an explicit understanding of how much information
  376.    it is giving away.
  377.  
  378. 3.2.1.  {Q2} refusal
  379.  
  380.    For individual site security concerns, the system administrator
  381.    SHOULD be given an option to individually turn on or off RUIP
  382.    processing of {Q2}.  If RUIP processing of {Q2} is turned off, the
  383.    RUIP MUST return a service refusal message of some sort.  "Finger
  384.    forwarding service denied" is adequate.  The purpose of this is to
  385.  
  386.  
  387.  
  388. Zimmerman                                                       [Page 7]
  389.  
  390. RFC 1194                         Finger                    November 1990
  391.  
  392.  
  393.    allow individual hosts to choose to not forward Finger requests, but
  394.    if they do choose to, to do so consistently.
  395.  
  396.    Overall, there are few cases which would warrant processing of {Q2}
  397.    at all, and they are far outweighed by the number of cases for
  398.    refusing to process {Q2}.  In particular, be aware that if a machine
  399.    is part of security perimeter (that is, it is a gateway from the
  400.    outside world to some set of interior machines), then turning {Q2} on
  401.    provides a path through that security perimeter.  Therefore, it is
  402.    RECOMMENDED that the default of the {Q2} processing option be to
  403.    refuse processing.  It certainly should not be enabled in gateway
  404.    machines without careful consideration of the security implications.
  405.  
  406. 3.2.2.  {C} refusal
  407.  
  408.    For individual site security concerns, the system administrator
  409.    SHOULD be given an option to individually turn on or off RUIP
  410.    acceptance of {C}.  If RUIP processing of {C} is turned off, the RUIP
  411.    MUST return a service refusal message of some sort.  "Finger online
  412.    user list denied" is adequate.  The purpose of this is to allow
  413.    individual hosts to choose to not list the users currently online.
  414.  
  415. 3.2.3.  Atomic discharge
  416.  
  417.    All implementations of Finger SHOULD allow individual system
  418.    administrators to tailor what atoms of information are returned to a
  419.    query.  For example:
  420.  
  421.       -    Administrator A should be allowed to specifically choose to
  422.            return office location, office phone number, home phone
  423.            number, and logged in/logout time.
  424.  
  425.       -    Administrator B should be allowed to specifically choose to
  426.            return only office location, and office phone number.
  427.  
  428.       -    Administrator C should be allowed to specifically choose to
  429.            return the minimum amount of required information, which is
  430.            the person's full name.
  431.  
  432. 3.2.4.  User information files
  433.  
  434.    Allowing an RUIP to return information out of a user-modifiable file
  435.    should be seen as equivalent to allowing any information about your
  436.    system to be freely distributed.  That is, it is potentially the same
  437.    as turning on all specifiable options.  This information security
  438.    breach can be done in a number of ways, some cleverly, others
  439.    straightforwardly.  This should disturb the sleep of system
  440.    administrators who wish to control the returned information.
  441.  
  442.  
  443.  
  444. Zimmerman                                                       [Page 8]
  445.  
  446. RFC 1194                         Finger                    November 1990
  447.  
  448.  
  449. 3.2.5.  Execution of user programs
  450.  
  451.    Allowing an RUIP to run a user program in response to a Finger query
  452.    is potentially dangerous.  BE CAREFUL!! -- the RUIP MUST NOT allow
  453.    system security to be compromised by that program.  Implementing this
  454.    feature may be more trouble than it is worth, since there are always
  455.    bugs in operating systems, which could be exploited via this type of
  456.    mechanism.
  457.  
  458. 3.2.6.  {U} ambiguity
  459.  
  460.    Be aware that a malicious user's clever and/or persistent use of this
  461.    feature can result in a list of most of the usernames on a system.
  462.    Refusal of {U} ambiguity should be considered in the same vein as
  463.    refusal of {C} requests (see section 3.2.2).
  464.  
  465. 3.2.7.  Audit trails
  466.  
  467.    Implementations SHOULD allow system administrators to log Finger
  468.    queries.
  469.  
  470. 3.3.  Client security
  471.  
  472.    It is expected that there will normally be some client program that
  473.    the user runs to query the initial RUIP.  By default, this program
  474.    SHOULD filter any unprintable data, leaving only the USASCII
  475.    characters and CRLF.  This is to protect against people playing with
  476.    VT100 escape codes and changing other peoples' X window names, or
  477.    committing other dastardly deeds.  Two separate user options SHOULD
  478.    be considered to modify this behavior, so that users may choose to
  479.    view international data or control characters:
  480.  
  481.       -    one to allow characters less than ASCII 32
  482.  
  483.       -    another to allow characters greater than ASCII 126
  484.  
  485.    For environments that live and breathe international data, the system
  486.    administrator SHOULD be given a mechanism to enable these options by
  487.    default for all users on a particular system.  This can be done via a
  488.    global environment variable or similar mechanism.
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500. Zimmerman                                                       [Page 9]
  501.  
  502. RFC 1194                         Finger                    November 1990
  503.  
  504.  
  505. 4.  Examples
  506.  
  507. 4.1.  Example with a null command line ({C})
  508.  
  509. Site: elbereth.rutgers.edu
  510. Command line: <CRLF>
  511.  
  512. Login       Name               TTY Idle    When            Office
  513. rinehart Mark J. Rinehart      p0  1:11 Mon 12:15  019 Hill       x3166
  514. greenfie Stephen J. Greenfiel  p1       Mon 15:46  542 Hill       x3074
  515. rapatel  Rocky - Rakesh Patel  p3    4d Thu 00:58  028 Hill       x2287
  516. pleasant Mel Pleasant          p4    3d Thu 21:32  019 Hill    908-932-
  517. dphillip Dave Phillips         p5  021: Sun 18:24  265 Hill       x3792
  518. dmk      David Katinsky        p6    2d Thu 14:11  028 Hill       x2492
  519. cherniss Cary Cherniss         p7    5  Mon 15:42  127 Psychol    x2008
  520. harnaga  Doug Harnaga          p8  2:01 Mon 10:15  055 Hill       x2351
  521. brisco   Thomas P. Brisco      pe  2:09 Mon 13:37  h055           x2351
  522. laidlaw  Angus Laidlaw         q0  1:55 Mon 11:26  E313C       648-5592
  523. cje      Chris Jarocha-Ernst   q1    8  Mon 13:43  259 Hill       x2413
  524.  
  525. 4.2.  Example with name specified ({U}{C})
  526.  
  527. Site: dimacs.rutgers.edu
  528. Command line: pirmann<CRLF>
  529.  
  530. Login name: pirmann                     In real life: David Pirmann
  531. Office: 016 Hill, x2443                 Home phone: 989-8482
  532. Directory: /dimacs/u1/pirmann           Shell: /bin/tcsh
  533. Last login Sat Jun 23 10:47 on ttyp0 from romulus.rutgers.
  534. No unread mail
  535. Project:
  536. Plan:
  537.                       Work Schedule, Summer 1990
  538.                  Rutgers LCSR Operations, 908-932-2443
  539.  
  540.                         Monday       5pm - 12am
  541.                         Tuesday      5pm - 12am
  542.                         Wednesday    9am -  5pm
  543.                         Thursday     9am -  5pm
  544.                         Saturday     9am -  5pm
  545.  
  546.                            larf larf hoo hoo
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. Zimmerman                                                      [Page 10]
  557.  
  558. RFC 1194                         Finger                    November 1990
  559.  
  560.  
  561. 4.3.  Example with ambiguous name specified ({U}{C})
  562.  
  563. Site: elbereth.rutgers.edu
  564. Command line: ron<CRLF>
  565. Login name: spinner                     In real life: Ron Spinner
  566. Office: Ops Cubby,    x2443             Home phone: 463-7358
  567. Directory: /u1/spinner                  Shell: /bin/tcsh
  568. Last login Mon May  7 16:38 on ttyq7
  569. Plan:
  570.             ught i
  571.           ca      n
  572.         m           a
  573.        '      ...     t
  574.       I      .   .     i
  575.              !         m
  576.       !       !       e
  577.        p       !pool
  578.         l
  579.          e
  580.           H
  581.  
  582.  
  583. Login name: surak                       In real life: Ron Surak
  584. Office: 000 OMB Dou,    x9256
  585. Directory: /u2/surak                    Shell: /bin/tcsh
  586. Last login Fri Jul 27 09:55 on ttyq3
  587. No Plan.
  588.  
  589. Login name: etter                       In real life: Ron Etter
  590. Directory: /u2/etter                    Shell: /bin/tcsh
  591. Never logged in.
  592. No Plan.
  593.  
  594. 4.4.  Example of query type {Q2} ({U}{H}{H}{C})
  595.  
  596. Site: dimacs.rutgers.edu
  597. Command line: hedrick@math.rutgers.edu@pilot.njin.net<CRLF>
  598.  
  599. [pilot.njin.net]
  600. [math.rutgers.edu]
  601. Login name: hedrick                     In real life: Charles Hedrick
  602. Office: 484 Hill, x3088
  603. Directory: /math/u2/hedrick             Shell: /bin/tcsh
  604. Last login Sun Jun 24 00:08 on ttyp1 from monster-gw.rutge
  605. No unread mail
  606. No Plan.
  607.  
  608.  
  609.  
  610.  
  611.  
  612. Zimmerman                                                      [Page 11]
  613.  
  614. RFC 1194                         Finger                    November 1990
  615.  
  616.  
  617. 5.  Acknowledgments
  618.  
  619.    Thanks to everyone in the Internet Engineering Task Force for their
  620.    comments.  Special thanks to Steve Crocker for his security
  621.    recommendations and prose.
  622.  
  623. 6.  Security Considerations
  624.  
  625.    Security issues are discussed in Section 3.
  626.  
  627. 7.  Author's Address
  628.  
  629.    David Paul Zimmerman
  630.    Center for Discrete Mathematics and
  631.    Theoretical Computer Science
  632.    Rutgers University
  633.    P.O. Box 1179
  634.    Piscataway, NJ 08855-1179
  635.  
  636.    Phone: (908)932-4592
  637.  
  638.    EMail: dpz@dimacs.rutgers.edu
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668. Zimmerman                                                      [Page 12]
  669.  
  670.